This disclosure relates generally to the field of graphics processing, and more particularly to the field of automatic rendering of three dimensional (3D) sound. A framework is provided that supports an interface between a graphics framework and an audio framework.
Many programmers use graphics rendering and animation infrastructure as a convenient means for rapid application development, such as for the development of, for example, gaming applications. Many graphics rendering and animation infrastructures allow programmers to create 2D and 3D scenes using complex special effects with limited programming overhead.
For example, Sprite Kit, developed by APPLE INC., provides a graphics rendering and animation infrastructure that programmers may use to animate arbitrary textured two-dimensional images, or “sprites.” Sprite Kit uses a traditional rendering loop, whereby the contents of each frame are processed before the frame is rendered. Each individual game determines the contents of the scene and how those contents change in each frame. Sprite Kit then does the work to render the frames of animation efficiently using the graphics hardware on the hosting device. Sprite Kit is optimized so that the positions of sprites may be changed arbitrarily in each frame of animation.
Three-dimensional graphics rendering and animation infrastructures are also commonly used by programmers today and provide a convenient means for developing applications with complex three-dimensional graphics, e.g., gaming applications using three-dimensional characters and/or environments. For example, Scene Kit, developed by APPLE INC., provides an Objective-C framework for building applications and games that use 3D graphics, combining a high-performance rendering engine with a high-level, descriptive API. Scene Kit supports the import, manipulation, and rendering of 3D assets. Unlike lower-level APIs such as OpenGL® that require programmers to implement in precise detail the rendering algorithms that display a scene, Scene Kit only requires descriptions of the scene's contents and the actions or animations that the programmers want the objects in the scene to perform. (OPENGL is a registered trademark of Silicon Graphics International Corporation.)
The Scene Kit framework offers a flexible, scene graph-based system to create and render virtual 3D scenes. With its node-based design, the Scene Kit scene graph abstracts most of the underlying internals of the used components from the programmer. Scene Kit does all the work underneath that is needed to render the scene efficiently using all the potential of the GPU.
One drawback of current frameworks is that graphical programs, such as games, often require additional elements, such as audio features, that must be determined in real time based on actions of various objects in a scene. Incorporating audio features in the graphical framework often requires significant time and resources to determine how the audio features should change when the objects in a scene change.